function f<T = number>() {}
f();

function f<T = number>() {}
f<string>();

declare const f: (<T = number>() => void) | null;
f?.();

declare const f: (<T = number>() => void) | null;
f?.<string>();

declare const f: any;
f();

declare const f: any;
f<string>();

declare const f: unknown;
f();

declare const f: unknown;
f<string>();

function g<T = number, U = string>() {}
g<number, number>();

